/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.dengues.model.component;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>COLMUN Type</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.dengues.model.component.COLMUNType#getCOMMENT <em>COMMENT</em>}</li>
 *   <li>{@link org.dengues.model.component.COLMUNType#getDEFAULT <em>DEFAULT</em>}</li>
 *   <li>{@link org.dengues.model.component.COLMUNType#isKEY <em>KEY</em>}</li>
 *   <li>{@link org.dengues.model.component.COLMUNType#getLENGTH <em>LENGTH</em>}</li>
 *   <li>{@link org.dengues.model.component.COLMUNType#getNAME <em>NAME</em>}</li>
 *   <li>{@link org.dengues.model.component.COLMUNType#isNULLABLE <em>NULLABLE</em>}</li>
 *   <li>{@link org.dengues.model.component.COLMUNType#getPATTERN <em>PATTERN</em>}</li>
 *   <li>{@link org.dengues.model.component.COLMUNType#getPRECISION <em>PRECISION</em>}</li>
 *   <li>{@link org.dengues.model.component.COLMUNType#getTYPE <em>TYPE</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.dengues.model.component.ComponentPackage#getCOLMUNType()
 * @model extendedMetaData="name='COLMUN_._type' kind='empty'"
 * @generated
 */
public interface COLMUNType extends EObject {
    /**
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    String copyright = "// ============================================================================\r\n//\r\n// Copyright (C) 2006-2007 Dengues\r\n//\r\n// Google Group: http://groups.google.com/group/dengues\r\n// QQ Group: 24885404\r\n//\r\n// This library is free software; you can redistribute it and/or\r\n// modify it under the terms of the GNU Lesser General Public\r\n// License as published by the Free Software Foundation; either\r\n// version 2.1 of the License.\r\n//\r\n// This library is distributed in the hope that it will be useful,\r\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r\n// Lesser General Public License for more details.\r\n//\r\n// You should have received a copy of the GNU General Public License\r\n// along with this program; if not, write to the Free Software\r\n// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\r\n//\r\n// ============================================================================\r\n";

    /**
     * Returns the value of the '<em><b>COMMENT</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>COMMENT</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>COMMENT</em>' attribute.
     * @see #setCOMMENT(String)
     * @see org.dengues.model.component.ComponentPackage#getCOLMUNType_COMMENT()
     * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
     *        extendedMetaData="kind='attribute' name='COMMENT' namespace='##targetNamespace'"
     * @generated
     */
    String getCOMMENT();

    /**
     * Sets the value of the '{@link org.dengues.model.component.COLMUNType#getCOMMENT <em>COMMENT</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>COMMENT</em>' attribute.
     * @see #getCOMMENT()
     * @generated
     */
    void setCOMMENT(String value);

    /**
     * Returns the value of the '<em><b>DEFAULT</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>DEFAULT</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>DEFAULT</em>' attribute.
     * @see #setDEFAULT(String)
     * @see org.dengues.model.component.ComponentPackage#getCOLMUNType_DEFAULT()
     * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
     *        extendedMetaData="kind='attribute' name='DEFAULT' namespace='##targetNamespace'"
     * @generated
     */
    String getDEFAULT();

    /**
     * Sets the value of the '{@link org.dengues.model.component.COLMUNType#getDEFAULT <em>DEFAULT</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>DEFAULT</em>' attribute.
     * @see #getDEFAULT()
     * @generated
     */
    void setDEFAULT(String value);

    /**
     * Returns the value of the '<em><b>KEY</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>KEY</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>KEY</em>' attribute.
     * @see #isSetKEY()
     * @see #unsetKEY()
     * @see #setKEY(boolean)
     * @see org.dengues.model.component.ComponentPackage#getCOLMUNType_KEY()
     * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean" required="true"
     *        extendedMetaData="kind='attribute' name='KEY' namespace='##targetNamespace'"
     * @generated
     */
    boolean isKEY();

    /**
     * Sets the value of the '{@link org.dengues.model.component.COLMUNType#isKEY <em>KEY</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>KEY</em>' attribute.
     * @see #isSetKEY()
     * @see #unsetKEY()
     * @see #isKEY()
     * @generated
     */
    void setKEY(boolean value);

    /**
     * Unsets the value of the '{@link org.dengues.model.component.COLMUNType#isKEY <em>KEY</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #isSetKEY()
     * @see #isKEY()
     * @see #setKEY(boolean)
     * @generated
     */
    void unsetKEY();

    /**
     * Returns whether the value of the '{@link org.dengues.model.component.COLMUNType#isKEY <em>KEY</em>}' attribute is set.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @return whether the value of the '<em>KEY</em>' attribute is set.
     * @see #unsetKEY()
     * @see #isKEY()
     * @see #setKEY(boolean)
     * @generated
     */
    boolean isSetKEY();

    /**
     * Returns the value of the '<em><b>LENGTH</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>LENGTH</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>LENGTH</em>' attribute.
     * @see #isSetLENGTH()
     * @see #unsetLENGTH()
     * @see #setLENGTH(int)
     * @see org.dengues.model.component.ComponentPackage#getCOLMUNType_LENGTH()
     * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Int" required="true"
     *        extendedMetaData="kind='attribute' name='LENGTH' namespace='##targetNamespace'"
     * @generated
     */
    int getLENGTH();

    /**
     * Sets the value of the '{@link org.dengues.model.component.COLMUNType#getLENGTH <em>LENGTH</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>LENGTH</em>' attribute.
     * @see #isSetLENGTH()
     * @see #unsetLENGTH()
     * @see #getLENGTH()
     * @generated
     */
    void setLENGTH(int value);

    /**
     * Unsets the value of the '{@link org.dengues.model.component.COLMUNType#getLENGTH <em>LENGTH</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #isSetLENGTH()
     * @see #getLENGTH()
     * @see #setLENGTH(int)
     * @generated
     */
    void unsetLENGTH();

    /**
     * Returns whether the value of the '{@link org.dengues.model.component.COLMUNType#getLENGTH <em>LENGTH</em>}' attribute is set.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @return whether the value of the '<em>LENGTH</em>' attribute is set.
     * @see #unsetLENGTH()
     * @see #getLENGTH()
     * @see #setLENGTH(int)
     * @generated
     */
    boolean isSetLENGTH();

    /**
     * Returns the value of the '<em><b>NAME</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>NAME</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>NAME</em>' attribute.
     * @see #setNAME(String)
     * @see org.dengues.model.component.ComponentPackage#getCOLMUNType_NAME()
     * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
     *        extendedMetaData="kind='attribute' name='NAME' namespace='##targetNamespace'"
     * @generated
     */
    String getNAME();

    /**
     * Sets the value of the '{@link org.dengues.model.component.COLMUNType#getNAME <em>NAME</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>NAME</em>' attribute.
     * @see #getNAME()
     * @generated
     */
    void setNAME(String value);

    /**
     * Returns the value of the '<em><b>NULLABLE</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>NULLABLE</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>NULLABLE</em>' attribute.
     * @see #isSetNULLABLE()
     * @see #unsetNULLABLE()
     * @see #setNULLABLE(boolean)
     * @see org.dengues.model.component.ComponentPackage#getCOLMUNType_NULLABLE()
     * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean" required="true"
     *        extendedMetaData="kind='attribute' name='NULLABLE' namespace='##targetNamespace'"
     * @generated
     */
    boolean isNULLABLE();

    /**
     * Sets the value of the '{@link org.dengues.model.component.COLMUNType#isNULLABLE <em>NULLABLE</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>NULLABLE</em>' attribute.
     * @see #isSetNULLABLE()
     * @see #unsetNULLABLE()
     * @see #isNULLABLE()
     * @generated
     */
    void setNULLABLE(boolean value);

    /**
     * Unsets the value of the '{@link org.dengues.model.component.COLMUNType#isNULLABLE <em>NULLABLE</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #isSetNULLABLE()
     * @see #isNULLABLE()
     * @see #setNULLABLE(boolean)
     * @generated
     */
    void unsetNULLABLE();

    /**
     * Returns whether the value of the '{@link org.dengues.model.component.COLMUNType#isNULLABLE <em>NULLABLE</em>}' attribute is set.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @return whether the value of the '<em>NULLABLE</em>' attribute is set.
     * @see #unsetNULLABLE()
     * @see #isNULLABLE()
     * @see #setNULLABLE(boolean)
     * @generated
     */
    boolean isSetNULLABLE();

    /**
     * Returns the value of the '<em><b>PATTERN</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>PATTERN</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>PATTERN</em>' attribute.
     * @see #setPATTERN(String)
     * @see org.dengues.model.component.ComponentPackage#getCOLMUNType_PATTERN()
     * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
     *        extendedMetaData="kind='attribute' name='PATTERN' namespace='##targetNamespace'"
     * @generated
     */
    String getPATTERN();

    /**
     * Sets the value of the '{@link org.dengues.model.component.COLMUNType#getPATTERN <em>PATTERN</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>PATTERN</em>' attribute.
     * @see #getPATTERN()
     * @generated
     */
    void setPATTERN(String value);

    /**
     * Returns the value of the '<em><b>PRECISION</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>PRECISION</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>PRECISION</em>' attribute.
     * @see #isSetPRECISION()
     * @see #unsetPRECISION()
     * @see #setPRECISION(int)
     * @see org.dengues.model.component.ComponentPackage#getCOLMUNType_PRECISION()
     * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Int" required="true"
     *        extendedMetaData="kind='attribute' name='PRECISION' namespace='##targetNamespace'"
     * @generated
     */
    int getPRECISION();

    /**
     * Sets the value of the '{@link org.dengues.model.component.COLMUNType#getPRECISION <em>PRECISION</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>PRECISION</em>' attribute.
     * @see #isSetPRECISION()
     * @see #unsetPRECISION()
     * @see #getPRECISION()
     * @generated
     */
    void setPRECISION(int value);

    /**
     * Unsets the value of the '{@link org.dengues.model.component.COLMUNType#getPRECISION <em>PRECISION</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see #isSetPRECISION()
     * @see #getPRECISION()
     * @see #setPRECISION(int)
     * @generated
     */
    void unsetPRECISION();

    /**
     * Returns whether the value of the '{@link org.dengues.model.component.COLMUNType#getPRECISION <em>PRECISION</em>}' attribute is set.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @return whether the value of the '<em>PRECISION</em>' attribute is set.
     * @see #unsetPRECISION()
     * @see #getPRECISION()
     * @see #setPRECISION(int)
     * @generated
     */
    boolean isSetPRECISION();

    /**
     * Returns the value of the '<em><b>TYPE</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>TYPE</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>TYPE</em>' attribute.
     * @see #setTYPE(String)
     * @see org.dengues.model.component.ComponentPackage#getCOLMUNType_TYPE()
     * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
     *        extendedMetaData="kind='attribute' name='TYPE' namespace='##targetNamespace'"
     * @generated
     */
    String getTYPE();

    /**
     * Sets the value of the '{@link org.dengues.model.component.COLMUNType#getTYPE <em>TYPE</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>TYPE</em>' attribute.
     * @see #getTYPE()
     * @generated
     */
    void setTYPE(String value);

} // COLMUNType
